SQLite-এ Index একটি বিশেষ ধরনের ডেটা স্ট্রাকচার, যা ডাটাবেসে ডেটার দ্রুত অনুসন্ধান এবং কার্যকরী কুয়েরি সম্পাদন করতে সাহায্য করে। ইনডেক্স টেবিলের কলামগুলির উপর তৈরি করা হয়, যা দ্রুত সারি খুঁজে পাওয়ার জন্য কাজে আসে। বিশেষত, যখন টেবিলটি বড় এবং সেখানে অনেক রেকর্ড থাকে, তখন ইনডেক্স ব্যবহার করলে কুয়েরির কার্যকারিতা উন্নত হয়।
SQLite-এ CREATE INDEX কমান্ড ব্যবহার করে একটি নতুন ইনডেক্স তৈরি করা হয়।
১. Index তৈরি করা
SQLite-এ একটি ইনডেক্স তৈরি করার জন্য CREATE INDEX কমান্ড ব্যবহার করা হয়। নিচে এর একটি সাধারণ সিনট্যাক্স দেওয়া হলো:
CREATE INDEX index_name ON table_name (column_name);
- index_name: ইনডেক্সের নাম।
- table_name: যে টেবিলের উপর ইনডেক্স তৈরি করতে চান।
- column_name: যে কলামের উপর ইনডেক্স তৈরি করতে চান।
উদাহরণ:
CREATE INDEX idx_users_name ON users (name);
এই কুয়েরি users টেবিলের name কলামের উপর একটি ইনডেক্স তৈরি করবে, যার নাম হবে idx_users_name। এর ফলে, name কলামের উপর অনুসন্ধান করার সময় দ্রুত ফলাফল পাওয়া যাবে।
২. Multiple Column Index - একাধিক কলামের ইনডেক্স তৈরি করা
আপনি একাধিক কলামের উপরও ইনডেক্স তৈরি করতে পারেন, যা একটি কম্পোজিট ইনডেক্স নামে পরিচিত। এটি একাধিক কলামের মানের উপর ভিত্তি করে অনুসন্ধান করতে সহায়তা করে।
উদাহরণ:
CREATE INDEX idx_users_name_age ON users (name, age);
এই কুয়েরি users টেবিলের name এবং age কলামের উপর একটি কম্পোজিট ইনডেক্স তৈরি করবে, যার মাধ্যমে একযোগভাবে এই দুটি কলামের ভিত্তিতে দ্রুত অনুসন্ধান করা সম্ভব হবে।
৩. Unique Index - ইউনিক ইনডেক্স তৈরি করা
একটি ইনডেক্সকে unique বানানো গেলে, এটি কলামে ডুপ্লিকেট মান প্রবেশ করতে বাধা দেয়। এর মাধ্যমে একটি কলামের সমস্ত মান অনন্য (unique) থাকতে নিশ্চিত করা যায়।
উদাহরণ:
CREATE UNIQUE INDEX idx_users_email ON users (email);
এই কুয়েরি users টেবিলের email কলামের উপর একটি ইউনিক ইনডেক্স তৈরি করবে, যা নিশ্চিত করবে যে এই কলামে কোন দুটি একে অপরকে সমান মান থাকতে পারবে না।
৪. Index তৈরি করার পরে ডেটা আপডেট
একটি ইনডেক্স তৈরির পর, যখন টেবিলের ডাটা আপডেট হয় (যেমন ডাটা ইনসার্ট, আপডেট বা ডিলিট করা হয়), তখন SQLite ইনডেক্সটিকে সিঙ্ক্রোনাইজ রাখে। এই প্রক্রিয়া স্বয়ংক্রিয়ভাবে ঘটে, তাই ব্যবহারকারীর কোনো হস্তক্ষেপের প্রয়োজন হয় না।
৫. Index মুছে ফেলা (DROP INDEX)
যদি আপনি কোনো ইনডেক্স মুছে ফেলতে চান, তাহলে DROP INDEX কমান্ড ব্যবহার করা হয়:
DROP INDEX index_name;
উদাহরণ:
DROP INDEX idx_users_name;
এই কুয়েরি idx_users_name ইনডেক্সটি মুছে ফেলবে।
৬. Index এর সুবিধা
- দ্রুত অনুসন্ধান: ইনডেক্স ব্যবহারের মাধ্যমে একটি টেবিলের ডেটাতে দ্রুত অনুসন্ধান করা যায়, বিশেষ করে যখন টেবিলের সাইজ বড় হয়।
- পারফরম্যান্স উন্নয়ন: ইনডেক্স অনুসন্ধান কুয়েরির পারফরম্যান্স উন্নত করতে সহায়তা করে, যেমন
SELECT,JOIN, এবংWHEREকুয়েরি অপারেশনগুলিতে। - উন্নত সার্চিং: একাধিক কলামের উপর ইনডেক্স ব্যবহার করলে জটিল কুয়েরি বা শর্তাধীন অনুসন্ধান আরও দ্রুত হয়।
সারাংশ
SQLite-এ Index তৈরি করার জন্য CREATE INDEX কমান্ড ব্যবহার করা হয়, যা ডেটার দ্রুত অনুসন্ধান এবং কুয়েরি পারফরম্যান্স বৃদ্ধি করতে সহায়তা করে। ইনডেক্স তৈরি করতে একক কলাম অথবা একাধিক কলামের ভিত্তিতে করা যেতে পারে, এবং UNIQUE কিওয়ার্ড ব্যবহার করলে ইনডেক্সটি ইউনিক করা যায়। ইনডেক্স তৈরি করার পর ডেটাবেসের ডাটা আপডেট হওয়ার সময় স্বয়ংক্রিয়ভাবে ইনডেক্সটি সিঙ্ক্রোনাইজ হয়।
Read more